41 research outputs found

    The Design and Implementation of Bloqqi - A Feature-Based Diagram Programming Language

    Get PDF
    This dissertation presents the design and implementation of a new block diagram programming language, Bloqqi, for building control systems with focus on variability. The language has been developed in collaboration with industry with the goal of reducing engineering time and improving reuse of functionality.When building a control system for a plant, there are typically different variants of the same base functionality. A plant may have several variants of a tank, for example, one variant with heating and another one without. This dissertation presents novel language mechanisms for describing this kind of variability, based on diagram inheritance. For instance, Bloqqi supports specifying what features, like heating, the base functionality can have. These specifications are then used to automatically derive smart-editing support in the form of a feature-based wizard. In this wizard, the user can select what features the base functionality should have, and code is generated corresponding to these features. The new language mechanisms allow feature-based libraries to be created and extended in a modular way.This dissertation presents techniques for implementing rich graphical editors with smart editing support based on semantic analysis. A prototype compiler and graphical editor have been implemented for the language, using the semantic formalism reference attribute grammars (RAGs). RAGs allow tools to share the semantic specifications, which makes it possible to modularly extend the compiler with support for advanced semantic feedback to the user of the graphical editor

    Reusing Semantics in Visual Editors: A Case for Reference Attribute Grammars

    Get PDF
    The semantic formalism reference attribute grammars (RAGs) allows graphs to be superimposed on abstract syntax trees. This paper investigates how RAGs can be used to model visual languages, with a case study of a control language that also has a textual syntax. The language contains blocks on which a total execution order is defined based on connections and layout information. One strength of RAGs is reusability, and we demonstrate this by reusing the definition of the execution order in the visual editor to provide semantic feedback to the user

    The swedish police intelligence units work with lone actors.

    No full text
    Uppsatsen visar de svårigheter och framgångsfaktorer som handläggarna inom Polismyndighetens underrättelsetjänst beskriver i letandet efter ensamagerande gärningsmän. I uppsatsen intervjuas fem handläggare som arbetar inom eller med polismyndighetens underrättelsetjänst. Uppsatsen använder en tematisk ansats och analysmetod. I empirin framträder framgångsfaktorerna med att använda sammansatta team och att använda riskreducerande insatser för att förhindra brott. Min analys bekräftar och visar på vikten av att i förberedelsefasen utbilda handläggarna. Detta stöds av krishanteringsteorin och rikshanteringsteorin. Anledningen till att det är viktigt med utbildning är att handläggarna ska vara redo att förhindra attacker men även att hantera de attacker som inte går att stoppa

    The swedish police intelligence units work with lone actors.

    No full text
    Uppsatsen visar de svårigheter och framgångsfaktorer som handläggarna inom Polismyndighetens underrättelsetjänst beskriver i letandet efter ensamagerande gärningsmän. I uppsatsen intervjuas fem handläggare som arbetar inom eller med polismyndighetens underrättelsetjänst. Uppsatsen använder en tematisk ansats och analysmetod. I empirin framträder framgångsfaktorerna med att använda sammansatta team och att använda riskreducerande insatser för att förhindra brott. Min analys bekräftar och visar på vikten av att i förberedelsefasen utbilda handläggarna. Detta stöds av krishanteringsteorin och rikshanteringsteorin. Anledningen till att det är viktigt med utbildning är att handläggarna ska vara redo att förhindra attacker men även att hantera de attacker som inte går att stoppa

    Supporting Visual Editors using Reference Attributed Grammars

    No full text
    Reference attributed grammars (RAGs) extend Knuth’s attribute grammars with references. These references can be used to extend the abstract syntax tree to a graph. We investigate how RAGs can be used for implementing tools for visual languages. Programs in those languages can often be expressed as graphs

    Intercepting dataflow connections in diagrams with inheritance

    No full text
    Control systems are often built using visual dataflow-based languages, and supporting different variants may be challenging. We introduce the concept of connection interception based on inheritance. This mechanism allows a diagram to extend another diagram and intercept connections defined in the supertype, that is, to replace it by two other connections, in order to specialize the behavior. This can be used to create extensible libraries that support different variants

    Implementing Semantic Feedback in a Diagram Editor

    No full text
    In editors for visual languages it is often useful to provide interactive feedback that depends on the static semantics of the edited program. In this paper we demonstrate how such feedback can be implemented using reference attribute grammars. Because the implementation is declarative, it is easy to modularize compiler and editor computations, reusing the compiler's program model in the editor. Furthermore, the declarative approach makes it easy to keep the program model and view consistent during editing. The approach is illustrated using a function block diagram language, with visual feedback on, for example, type checking and cyclic data flow

    Using Refactoring Techniques for Visual Editing of Hybrid Languages

    No full text
    In this paper we describe how techniques for refactoring can be used for visual editing of hybrid languages, that is, languages that have both a visual and a textual syntax. Textual languages have name rules that define how name uses are bound to name declarations. These bindings often correspond to connections in the visual language, and need to be taken into account in order to implement the visual edit operations correctly. We use inverse lookup functions, originally devised for renaming, for implementing visual editing operations for hybrid languages

    Handling of layout-sensitive semantics in a visual control language

    No full text
    We have implemented a prototype editor for a visual language where the semantics depends on layout. A high-level abstract syntax is defined, where these semantics can be captured without the need for storing concrete graphical coordinates. The model implementation is done in JastAdd, a metacompilation tool based on reference attribute grammars. This gives a modular architecture where the core compiler model can be reused for both the interactive editor and the batch compiler
    corecore